import sys
input = sys.stdin.readline
a = int(input())
b = int(input())
f = abs(a - b) // 2
s = (abs(a - b) + 1) // 2
print(f * (f + 1) // 2 + s * (s + 1) // 2)
#include<iostream>
using namespace std;
int main(){
int a,b;
cin>>a>>b;
if(a>b){
int temp=a;
a=b;
b=temp;
}
if((b-a)%2==0||(a-b)%2==0){
int c=(b-a)/2;
int sum=0;
for(int i=1;i<=c;i++){
sum=sum+i;
}
cout<<2*sum<<endl;
}
else{
int m=(b-a+1)/2;
int sum1=0;
for(int i=1;i<=m;i++){
sum1=sum1+i;
}
int m1=(b-a-1)/2;
int sum2=0;
for(int i=1;i<=m1;i++){
sum2=sum2+i;
}
cout<<(sum1+sum2)<<endl;
}
}
1671B - Consecutive Points Segment | 1671C - Dolce Vita |
1669G - Fall Down | 4D - Mysterious Present |
1316B - String Modification | 1204A - BowWow and the Timetable |
508B - Anton and currency you all know | 1672A - Log Chopping |
300A - Array | 48D - Permutations |
677C - Vanya and Label | 1583B - Omkar and Heavenly Tree |
1703C - Cypher | 1511C - Yet Another Card Deck |
1698A - XOR Mixup | 1702E - Split Into Two Sets |
1703B - ICPC Balloons | 1702F - Equate Multisets |
1700A - Optimal Path | 665C - Simple Strings |
1708A - Difference Operations | 1703E - Mirror Grid |
1042A - Benches | 1676B - Equal Candies |
1705B - Mark the Dust Sweeper | 1711A - Perfect Permutation |
1701B - Permutation | 1692A - Marathon |
1066A - Vova and Train | 169B - Replacing Digits |